Near-native speed code running alongside your JavaScript.
WebAssembly (Wasm) is a low-level, binary instruction format that runs in the browser at close to native speed — code written in C, C++, Rust, or Go can be compiled to a .wasm module and executed alongside JavaScript. It exists for the workloads JavaScript genuinely struggles with: video/image codecs, physics engines, cryptography, or porting an existing native codebase to the web without a full rewrite.
Wasm doesn't replace JavaScript — it complements it. JS is still what loads the module, calls its exported functions, and passes data back and forth, but that boundary isn't free: numbers pass easily, while strings and complex objects have to be manually copied into and out of Wasm's linear memory (a flat ArrayBuffer-like block), since Wasm has no native concept of a JS object or string. That marshalling overhead is exactly why Wasm wins for compute-heavy loops but rarely helps for typical DOM-manipulating app code.
What you'll walk away knowing